﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace GRCSU
{
    public partial class frmPrincipal : Form
    {
        public frmPrincipal()
        {
            InitializeComponent();
        }

        private void frmPrincipal_Load(object sender, EventArgs e)
        {
            // Mostra um aviso ao usuário de que o programa não chupa cana e assobia ao mesmo tempo
            MessageBox.Show("Este programa foi escrito para ajudar no cáculo da Guia de Recolhimento da Contribuição Sindical Urbana, e não substitui-lo.", 
                "Atenção", 
                MessageBoxButtons.OK, 
                MessageBoxIcon.Information);

            // Configura os controles dateTimePicker a exibir as datas como dd/MM/aaaa
            dateTimePicker1.Format = DateTimePickerFormat.Custom;
            dateTimePicker1.CustomFormat = "dd/MM/yyyy";

            dateTimePicker2.Format = DateTimePickerFormat.Custom;
            dateTimePicker2.CustomFormat = "dd/MM/yyyy";
        }

        private void cbxPagamentoAtrasado_CheckedChanged(object sender, EventArgs e)
        {
            // Habilita gbxCalculoAtraso
            if (cbxPagamentoAtrasado.Checked)     // Se a caixa estiver marcada...
            {
                gbxCalculoAtraso.Enabled = true;  // habilite os campos de cálculo
            }
            else                                  // Caso contrário...
            {
                gbxCalculoAtraso.Enabled = false; // desabilite os campos de cálculo
            }
        }

        private void btnCalcularImposto_Click(object sender, EventArgs e)
        {
           // Faz o cálculo da GRCSU no prazo
           decimal salarioContribuicao, valorGuia;
           salarioContribuicao = Convert.ToDecimal(tbxSalarioContribuicao.Text);
           valorGuia = salarioContribuicao / 30;
           lblValorGuia.Text = String.Format("{0:C}", valorGuia);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show("O programador está fazendo o que pode para resolver.",
                "Ainda não fui implementado :'(",
                MessageBoxButtons.OK,
                MessageBoxIcon.Error);
        }

        private void btnReiniciarApp_Click(object sender, EventArgs e)
        {
            // "Reinicia" a aplicação, zerando os seus valores
            tbxSalarioContribuicao.Text = "";
            cbxPagamentoAtrasado.Checked = false;
            lblMultaMes.Text = "";
            lblMultaDias.Text = "";
            lblMultaTotal.Text = "";
            lblJurosMes.Text = "";
            lblJurosSelic.Text = "";
            lblJurosTotal.Text = "";
            lblValorGuia.Text = "";
        }

        private void btnAbrirCaixaWeb_Click(object sender, EventArgs e)
        {
            // Abre o navegador padrão na página da GRCSU
            // Código retirado de https://support.microsoft.com/pt-br/kb/305703
            string target = "https://sindical.caixa.gov.br/sitcs_internet/contribuinte/login/login.do";

            try
            {
                System.Diagnostics.Process.Start(target);
            }
            catch
                (
                 System.ComponentModel.Win32Exception noBrowser)
            {
                if (noBrowser.ErrorCode == -2147467259)
                    MessageBox.Show(noBrowser.Message);
            }
            catch (System.Exception other)
            {
                MessageBox.Show(other.Message);
            }
        }

        private void btnMostrarSobre_Click(object sender, EventArgs e)
        {
            // Mostra o form frmSobre
            frmSobre f2 = new frmSobre();
            f2.Show();
        }

        private void btnSairApp_Click(object sender, EventArgs e)
        {
            // Sai da aplicação
            Application.Exit();
        }
    }
}
